package com.kly.manager.ai;

import lombok.Getter;

import java.util.Arrays;

@Getter
public enum ModelEnum {

    QWEN_PLUS("qwen-plus", "Qwen Plus"),
    QWEN_MAX("qwen-max", "Qwen Max"),
    QWEN_TURBO("qwen-turbo", "Qwen Turbo"),
    QWEN_LITE("qwen-lite", "Qwen Lite");

    private final String value; // 模型的实际值（唯一标识）
    private final String text;  // 模型的显示名称或描述

    ModelEnum(String value, String text) {
        this.value = value;
        this.text = text;
    }

    /**
     * 根据模型的实际值获取对应的枚举对象
     *
     * @param value 模型的实际值
     * @return 枚举对象，如果找不到则返回 null
     */
    public static ModelEnum getByValue(String value) {
        return Arrays.stream(ModelEnum.values())
                .filter(model -> model.getValue().equals(value))
                .findFirst()
                .orElse(null);
    }

    /**
     * 获取所有模型的 (value, text) 元组列表
     *
     * @return 包含所有模型信息的列表
     */
    public static String[][] getAllModels() {
        return Arrays.stream(ModelEnum.values())
                .map(model -> new String[]{model.getValue(), model.getText()})
                .toArray(String[][]::new);
    }

}